home *** CD-ROM | disk | FTP | other *** search
- xdef _SetupParPort
- xdef _SetVolume
- xdef _SetPrefactor
- xdef _SetBass
- xdef _SetTreble
-
- _SetupParPort
- ;Set the parallel port hardware up
-
- MOVE.B #%00000000,$bfd200
- MOVE.B #%00000011,$bfe101
- MOVE.B #%00010011,$bfe301 ; Reset on
- MOVE.B #%00000011,$bfe301 ; Reset off
- MOVE.B #%00000011,$bfe101
-
- rts
-
- _SetVolume
- ;Set the overall volume level
- ;d0 - volume level
-
- ; MOVEM d0-d7/a0-a6,-(a7)
-
- MOVE.l d0,d2
- MOVE.w d2,d3
- LSR.w #8,d3
- MOVE.l d2,d4
- SWAP d4
-
- LEA $BFE301,A1
- VolumeS_LL
- BSR Write_IIC_S
- MOVE.B #$3A,D0
- BSR Write_IIC_D0
- MOVE.B #$68,D0
- BSR Write_IIC_D0
- MOVE.B #$B0,D0
- BSR Write_IIC_D0
- MOVE.B #$00,D0
- BSR Write_IIC_D0
- MOVE.B #$00,D0
- BSR Write_IIC_D0
- MOVE.B #$01,D0
- BSR Write_IIC_D0
- MOVE.B #$07,D0
- BSR Write_IIC_D0
- MOVE.B #$F8,D0
- BSR Write_IIC_D0
- MOVE.B D3,D0
- BSR Write_IIC_D0
- MOVE.B D2,D0
- BSR Write_IIC_D0
- MOVE.B #$00,D0
- BSR Write_IIC_D0
- MOVE.B D4,D0
- BSR Write_IIC_D0
- BSR Write_IIC_P
-
- VolumeS_RR
- BSR Write_IIC_S
- MOVE.B #$3A,D0
- BSR Write_IIC_D0
- MOVE.B #$68,D0
- BSR Write_IIC_D0
- MOVE.B #$B0,D0
- BSR Write_IIC_D0
- MOVE.B #$00,D0
- BSR Write_IIC_D0
- MOVE.B #$00,D0
- BSR Write_IIC_D0
- MOVE.B #$01,D0
- BSR Write_IIC_D0
- MOVE.B #$07,D0
- BSR Write_IIC_D0
- MOVE.B #$FB,D0
- BSR Write_IIC_D0
- MOVE.B D3,D0
- BSR Write_IIC_D0
- MOVE.B D2,D0
- BSR Write_IIC_D0
- MOVE.B #$00,D0
- BSR Write_IIC_D0
- MOVE.B D4,D0
- BSR Write_IIC_D0
- BSR Write_IIC_P
-
- ; BRA iic_exit
- rts
-
- _SetPrefactor
- ;d0 - prefactor level
-
- ; MOVEM d0-d7/a0-a6,-(a7)
-
- MOVE.w d0,d2
- MOVE.w d2,d3
- LSR.w #8,d3
-
- LEA $BFE301,A1
- BSR Write_IIC_S
- MOVE.b #$3a,d0
- BSR Write_IIC_D0
- MOVE.b #$68,d0
- BSR Write_IIC_D0
- MOVE.b #$9E,d0
- BSR Write_IIC_D0
- MOVE.b #$70,d0
- BSR Write_IIC_D0
- MOVE.b d3,d0
- BSR Write_IIC_D0
- MOVE.b d2,d0
- BSR Write_IIC_D0
- BSR Write_IIC_P
-
- ; BRA iic_exit
- rts
-
- _SetBass
- ;d0 - bass
-
- ; MOVEM d0-d7/a0-a6,-(a7)
- move.b #$b0,d4
- jmp go
-
- _SetTreble
- ;d0 - treble
-
- ; MOVEM d0-d7/a0-a6,-(a7)
- move.b #$f0,d4
-
- go
-
- MOVE.w d0,d2
- MOVE.w d2,d3
- LSR.w #8,d3
-
- LEA $BFE301,A1
- BSR Write_IIC_S
- MOVE.b #$3a,d0
- BSR Write_IIC_D0
- MOVE.b #$68,d0
- BSR Write_IIC_D0
- MOVE.b #$96,d0
- BSR Write_IIC_D0
- MOVE.b d4,d0
- BSR Write_IIC_D0
- MOVE.b d3,d0
- BSR Write_IIC_D0
- MOVE.b d2,d0
- BSR Write_IIC_D0
- BSR Write_IIC_P
-
- ; BRA iic_exit
- rts
-
-
-
- Write_IIC_S
- BSR Wait_IIC
- MOVE.B #%00000011,(a1)
- BSR Wait_IIC
- MOVE.B #%00001011,(a1)
- BSR Wait_IIC
- MOVE.B #%00001111,(a1)
- RTS
-
- Write_IIC_P
- BSR Wait_IIC
- MOVE.B #%00001111,(a1)
- BSR Wait_IIC
- MOVE.B #%00001011,(a1)
- BSR Wait_IIC
- MOVE.B #%00000011,(a1)
- RTS
-
- Write_IIC_1
- BSR Wait_IIC
- MOVE.B #%00001111,(a1)
- BSR Wait_IIC
- MOVE.B #%00000111,(a1)
- BSR Wait_IIC
- MOVE.B #%00000011,(a1)
- BSR Wait_IIC
- MOVE.B #%00000111,(a1)
- BSR Wait_IIC
- MOVE.B #%00001111,(a1)
- RTS
-
- Write_IIC_0
- BSR Wait_IIC
- MOVE.B #%00001111,(a1)
- BSR Wait_IIC
- MOVE.B #%00001111,(a1)
- BSR Wait_IIC
- MOVE.B #%00001011,(a1)
- BSR Wait_IIC
- MOVE.B #%00001111,(a1)
- BSR Wait_IIC
- MOVE.B #%00001111,(a1)
- RTS
-
- Write_IIC_D0
- Moveq.L #9,D1
- Write_Loop
- Subq.B #1,D1
- Beq.b Write_IIC_0
- Rol.B #1,D0
- Btst #0,D0
- Beq.b Write_0
- Bsr.b Write_IIC_1
- Bra.b Write_Loop
- Write_0
- Bsr.b Write_IIC_0
- Bra.b Write_Loop
-
- Wait_IIC
- MOVEM.L D0-D1,-(SP)
- MOVE.L #40,d0
- wicloop
- MOVE.B $bfe301,d1
- DBRA D0,wicloop
- MOVEM.L (SP)+,D0-D1
- RTS